Auto merge of #4026 - alexcrichton:bare-registry, r=matklad
Don't check out the crates.io index locally
This commit moves working with the crates.io index to operating on the git
object layers rather than actually literally checking out the index. This is
aimed at two different goals:
* Improving the on-disk file size of the registry
* Improving cloning times for the registry as the index doesn't need to be
checked out
The on disk size of my `registry` folder of a fresh check out of the index went
form 124M to 48M, saving a good chunk of space! The entire operation took about
0.6s less on a Unix machine (out of 4.7s total for current Cargo). On Windows,
however, the clone operation went from 11s to 6.7s, a much larger improvement!
Closes #4015